#include <iostream>
#include <atomic>
#include <type_traits>
#define print(x) (std::cout << "x :" << x << std::endl)

void test1()
{
    int temp = 10;
    int tmp = 11;
    // 都修饰的是变量本身，地址仍然可以修改
    const int *a = &temp;
    temp = tmp;
    int *const b = &temp;
    // b = &tmp;
    temp = tmp;
    print(*a);
    print(*b);
}
class example
{
public:
    static int count;
};
int example::count = 0;
// int constexpr *p = x;
void test2()
{
    // example p1;
    // example p2;
    // print(&p1.count);
    // print(&p2.count);
    // p2.count++;
    // *p = 10;
    // int i = 10;
    // i++;
    std::atomic<int> value = 99;
}
struct h
{
};
class h1
{
};
int main()
{
    // test1();
    // test2();
    // print(sizeof(h));
    // print(sizeof(h1));
    print(std::is_pod<h>::value);
    return 0;
}